﻿using System.ServiceModel;
using System.ServiceModel.Web;
using System.Collections.Generic;

namespace PepsiCo.RBS.Services
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IRBSService" in both code and config file together.
    [ServiceContract]
    public interface IRBSService
    {
        [OperationContract]
        [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        RBSResult GetCalendarOverlap(string webUrl, 
                                    string listName, 
                                    string startDate, 
                                    string startHour, 
                                    string startMinutes, 
                                    string endDate, 
                                    string endHour, 
                                    string endMinutes, 
                                    string bookingRoom, 
                                    string currentEventId,
                                    string isRecurred,
                                    string rFrequency, // Weekly or Monthly
                                    string rInterval, // every 1 week or every 3 months
                                    string rOptions, // week/month's options, split by ","
                                    string isAdmin
                                    );

        [OperationContract]
        [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        RBSWaitingListResult GetCalendarOverlapWaitingList(string webUrl,
                                    string listName,
                                    string startDate,
                                    string startHour,
                                    string startMinutes,
                                    string endDate,
                                    string endHour,
                                    string endMinutes,
                                    string bookingRoom,
                                    string currentEventId,
                                    string isRecurred,
                                    string rFrequency, // Weekly or Monthly
                                    string rInterval, // every 1 week or every 3 months
                                    string rOptions, // week/month's options, split by ","
                                    string isAdmin
                                    ); 

        [OperationContract]
        [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        string SendWarningEmail(string webUrl, string listId, string itemId);
    }
}

